/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package co.edu.univalle.proyecto.logica;

import co.edu.univalle.proyecto.modelo.Actividades;
import co.edu.univalle.proyecto.modelo.Indicadores;
import co.edu.univalle.proyecto.persistencia.IndicadoresDAO;
import co.edu.univalle.proyecto.persistencia.IndicadoresDAOLocal;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author CQ 43 - 450LA
 */
@Stateless
public class IndicadoresLogica implements IndicadoresLogicaLocal {
      @EJB
    private IndicadoresDAOLocal indicadoresDAO;

  
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")

    @Override
    public void registrar(Indicadores indicador) throws Exception {
           if(indicador==null){
            throw new Exception("el indicador no tiene datos necesarios");
        }
           if(indicador.getIdindicador()==null){
            throw new Exception("el indicador debe tener un id ");
        }
              if(indicador.getMetaI()==null){
            throw new Exception("el indicador debe tener una meta ");
        }
        
          
      Indicadores objindicador = indicadoresDAO.consultarPorNombre(indicador.getNombreindicador());
        
        if(objindicador != null){
            throw new Exception("El indicador ya Existe");
        }
        
        if(indicador.getNombreindicador()==null || indicador.getNombreindicador().equals("")){
            throw new Exception("el indicador debe tener un nombre");
        }
        
        indicadoresDAO.registrar(indicador);
    
    }

    @Override
    public void eliminar(Indicadores indicador) throws Exception {
   if(indicador==null){
            throw new Exception("el indicador no tiene datos");
        }
     Indicadores objindicador = indicadoresDAO.consultarPorNombre(indicador.getNombreindicador());
        
        if(objindicador == null){
            throw new Exception("El indicador a eliminar no Existe");
        }
        
       
        indicadoresDAO.eliminar(indicador);
    }

    @Override
    public void modificar(Indicadores indicador) throws Exception {
  if(indicador==null){
            throw new Exception("el indicador no tiene datos necesarios");
        }
           if(indicador.getIdindicador()==null){
            throw new Exception("el indicador debe tener un id ");
        }
              if(indicador.getMetaI()==null){
            throw new Exception("el indicador debe tener una meta ");
        }
        
          
      Indicadores objindicador = indicadoresDAO.consultarPorNombre(indicador.getNombreindicador());
        
        if(objindicador == null){
            throw new Exception("El indicador ya no Existe");
        }
        
        if(indicador.getNombreindicador()==null || indicador.getNombreindicador().equals("")){
            throw new Exception("el indicador debe tener un nombre");
        }
        
        indicadoresDAO.modificar(indicador);
    }

    @Override
    public List<Indicadores> consultar() throws Exception {
return indicadoresDAO.consultar();
    }

    @Override
    public Indicadores consultarPorNombre(String nombre) throws Exception {
        if(nombre==null || nombre.equals("")){
            throw new Exception("El nombre del indicador es obligatorio");
        }
        return indicadoresDAO.consultarPorNombre(nombre); 
    }

    @Override
    public List<Indicadores> consultarPorNombredeProceso(String proceso) throws Exception {
 if(proceso==null || proceso.equals("")){
            throw new Exception("El Nombre del proceso es obligatorio");
        }
        return indicadoresDAO.consultarPorNombredeProceso(proceso);  
    }
    

   
}
